HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-160-generic #170-Ubuntu SMP Wed Oct 1 10:06:56 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: /home/sportpoint-hotel.ru/public_html/wp-content/plugins/elementor/assets/js/editor-modules.js
/*! elementor - v2.5.14 - 16-04-2019 */
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 203);
/******/ })
/************************************************************************/
/******/ ({

/***/ 12:
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var InnerTabsBehavior;

InnerTabsBehavior = Marionette.Behavior.extend({

	onRenderCollection: function onRenderCollection() {
		this.handleInnerTabs(this.view);
	},

	handleInnerTabs: function handleInnerTabs(parent) {
		var closedClass = 'elementor-tab-close',
		    activeClass = 'elementor-tab-active',
		    tabsWrappers = parent.children.filter(function (view) {
			return 'tabs' === view.model.get('type');
		});

		_.each(tabsWrappers, function (view) {
			view.$el.find('.elementor-control-content').remove();

			var tabsId = view.model.get('name'),
			    tabs = parent.children.filter(function (childView) {
				return 'tab' === childView.model.get('type') && childView.model.get('tabs_wrapper') === tabsId;
			});

			_.each(tabs, function (childView, index) {
				view._addChildView(childView);

				var tabId = childView.model.get('name'),
				    controlsUnderTab = parent.children.filter(function (controlView) {
					return tabId === controlView.model.get('inner_tab');
				});

				if (0 === index) {
					childView.$el.addClass(activeClass);
				} else {
					_.each(controlsUnderTab, function (controlView) {
						controlView.$el.addClass(closedClass);
					});
				}
			});
		});
	},

	onChildviewControlTabClicked: function onChildviewControlTabClicked(childView) {
		var closedClass = 'elementor-tab-close',
		    activeClass = 'elementor-tab-active',
		    tabClicked = childView.model.get('name'),
		    childrenUnderTab = this.view.children.filter(function (view) {
			return 'tab' !== view.model.get('type') && childView.model.get('tabs_wrapper') === view.model.get('tabs_wrapper');
		}),
		    siblingTabs = this.view.children.filter(function (view) {
			return 'tab' === view.model.get('type') && childView.model.get('tabs_wrapper') === view.model.get('tabs_wrapper');
		});

		_.each(siblingTabs, function (view) {
			view.$el.removeClass(activeClass);
		});

		childView.$el.addClass(activeClass);

		_.each(childrenUnderTab, function (view) {
			if (view.model.get('inner_tab') === tabClicked) {
				view.$el.removeClass(closedClass);
			} else {
				view.$el.addClass(closedClass);
			}
		});

		elementor.getPanelView().updateScrollbar();
	}
});

module.exports = InnerTabsBehavior;

/***/ }),

/***/ 203:
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _module = __webpack_require__(204);

var _module2 = _interopRequireDefault(_module);

var _introduction = __webpack_require__(205);

var _introduction2 = _interopRequireDefault(_introduction);

var _controlsStack = __webpack_require__(206);

var _controlsStack2 = _interopRequireDefault(_controlsStack);

var _baseSettings = __webpack_require__(207);

var _baseSettings2 = _interopRequireDefault(_baseSettings);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

elementorModules.editor = {
	elements: {
		models: {
			BaseSettings: _baseSettings2.default
		}
	},
	utils: {
		Module: _module2.default,
		Introduction: _introduction2.default
	},
	views: {
		ControlsStack: _controlsStack2.default
	}
};

/***/ }),

/***/ 204:
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var EditorModule = elementorModules.Module.extend({

	onInit: function onInit() {
		jQuery(window).on('elementor:init', this.onElementorReady);
	},

	getEditorControlView: function getEditorControlView(name) {
		var editor = elementor.getPanelView().getCurrentPageView();

		return editor.children.findByModelCid(this.getEditorControlModel(name).cid);
	},

	getEditorControlModel: function getEditorControlModel(name) {
		var editor = elementor.getPanelView().getCurrentPageView();

		return editor.collection.findWhere({ name: name });
	},

	onElementorReady: function onElementorReady() {
		this.onElementorInit();

		elementor.on('frontend:init', this.onElementorFrontendInit.bind(this)).on('preview:loaded', this.onElementorPreviewLoaded.bind(this));
	}
});

EditorModule.prototype.onElementorInit = function () {};

EditorModule.prototype.onElementorPreviewLoaded = function () {};

EditorModule.prototype.onElementorFrontendInit = function () {};

module.exports = EditorModule;

/***/ }),

/***/ 205:
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
	value: true
});

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var _class = function (_elementorModules$Mod) {
	_inherits(_class, _elementorModules$Mod);

	function _class() {
		var _ref;

		_classCallCheck(this, _class);

		for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
			args[_key] = arguments[_key];
		}

		var _this = _possibleConstructorReturn(this, (_ref = _class.__proto__ || Object.getPrototypeOf(_class)).call.apply(_ref, [this].concat(args)));

		_this.initDialog();
		return _this;
	}

	_createClass(_class, [{
		key: 'getDefaultSettings',
		value: function getDefaultSettings() {
			return {
				dialogType: 'buttons',
				dialogOptions: {
					effects: {
						hide: 'hide',
						show: 'show'
					},
					hide: {
						onBackgroundClick: false
					}
				}
			};
		}
	}, {
		key: 'initDialog',
		value: function initDialog() {
			var _this2 = this;

			var dialog = void 0;

			this.getDialog = function () {
				if (!dialog) {
					var settings = _this2.getSettings();

					dialog = elementorCommon.dialogsManager.createWidget(settings.dialogType, settings.dialogOptions);

					if (settings.onDialogInitCallback) {
						settings.onDialogInitCallback.call(_this2, dialog);
					}
				}

				return dialog;
			};
		}
	}, {
		key: 'show',
		value: function show(target) {
			if (this.introductionViewed) {
				return;
			}

			var dialog = this.getDialog();

			if (target) {
				dialog.setSettings('position', {
					of: target
				});
			}

			dialog.show();
		}
	}, {
		key: 'setViewed',
		value: function setViewed() {
			this.introductionViewed = true;

			elementorCommon.ajax.addRequest('introduction_viewed', {
				data: {
					introductionKey: this.getSettings('introductionKey')
				}
			});
		}
	}]);

	return _class;
}(elementorModules.Module);

exports.default = _class;

/***/ }),

/***/ 206:
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var ControlsStack;

ControlsStack = Marionette.CompositeView.extend({
	classes: {
		popover: 'elementor-controls-popover'
	},

	activeTab: null,

	activeSection: null,

	className: function className() {
		return 'elementor-controls-stack';
	},

	templateHelpers: function templateHelpers() {
		return {
			elementData: elementor.getElementData(this.model)
		};
	},

	childViewOptions: function childViewOptions() {
		return {
			elementSettingsModel: this.model
		};
	},

	ui: function ui() {
		return {
			tabs: '.elementor-panel-navigation-tab',
			reloadButton: '.elementor-update-preview-button'
		};
	},

	events: function events() {
		return {
			'click @ui.tabs': 'onClickTabControl',
			'click @ui.reloadButton': 'onReloadButtonClick'
		};
	},

	modelEvents: {
		destroy: 'onModelDestroy'
	},

	behaviors: {
		HandleInnerTabs: {
			behaviorClass: __webpack_require__(12)
		}
	},

	initialize: function initialize() {
		this.initCollection();

		this.listenTo(elementor.channels.deviceMode, 'change', this.onDeviceModeChange);
	},

	initCollection: function initCollection() {
		this.collection = new Backbone.Collection(_.values(elementor.mergeControlsSettings(this.getOption('controls'))));
	},

	filter: function filter(controlModel) {
		if (controlModel.get('tab') !== this.activeTab) {
			return false;
		}

		if ('section' === controlModel.get('type')) {
			return true;
		}

		var section = controlModel.get('section');

		return !section || section === this.activeSection;
	},

	getControlViewByModel: function getControlViewByModel(model) {
		return this.children.findByModelCid(model.cid);
	},

	getControlViewByName: function getControlViewByName(name) {
		return this.getControlViewByModel(this.getControlModel(name));
	},

	getControlModel: function getControlModel(name) {
		return this.collection.findWhere({ name: name });
	},

	isVisibleSectionControl: function isVisibleSectionControl(sectionControlModel) {
		return this.activeTab === sectionControlModel.get('tab');
	},

	activateTab: function activateTab(tabName) {
		this.activeTab = tabName;

		this.ui.tabs.removeClass('elementor-active').filter('[data-tab="' + tabName + '"]').addClass('elementor-active');

		this.activateFirstSection();
	},

	activateSection: function activateSection(sectionName) {
		this.activeSection = sectionName;
	},

	activateFirstSection: function activateFirstSection() {
		var self = this;

		var sectionControls = self.collection.filter(function (controlModel) {
			return 'section' === controlModel.get('type') && self.isVisibleSectionControl(controlModel);
		});

		if (!sectionControls[0]) {
			return;
		}

		var preActivatedSection = sectionControls.filter(function (controlModel) {
			return self.activeSection === controlModel.get('name');
		});

		if (preActivatedSection[0]) {
			return;
		}

		self.activateSection(sectionControls[0].get('name'));
	},

	getChildView: function getChildView(item) {
		var controlType = item.get('type');

		return elementor.getControlView(controlType);
	},

	handlePopovers: function handlePopovers() {
		var self = this,
		    popoverStarted = false,
		    $popover;

		self.removePopovers();

		self.children.each(function (child) {
			if (popoverStarted) {
				$popover.append(child.$el);
			}

			var popover = child.model.get('popover');

			if (!popover) {
				return;
			}

			if (popover.start) {
				popoverStarted = true;

				$popover = jQuery('<div>', { class: self.classes.popover });

				child.$el.before($popover);

				$popover.append(child.$el);
			}

			if (popover.end) {
				popoverStarted = false;
			}
		});
	},

	removePopovers: function removePopovers() {
		this.$el.find('.' + this.classes.popover).remove();
	},

	getNamespaceArray: function getNamespaceArray() {
		return [elementor.getPanelView().getCurrentPageName()];
	},

	openActiveSection: function openActiveSection() {
		var activeSection = this.activeSection,
		    activeSectionView = this.children.filter(function (view) {
			return activeSection === view.model.get('name');
		});

		if (activeSectionView[0]) {
			activeSectionView[0].$el.addClass('elementor-open');

			var eventNamespace = this.getNamespaceArray();

			eventNamespace.push(activeSection, 'activated');

			elementor.channels.editor.trigger(eventNamespace.join(':'), this);
		}
	},

	onRenderCollection: function onRenderCollection() {
		this.openActiveSection();

		this.handlePopovers();
	},

	onRenderTemplate: function onRenderTemplate() {
		this.activateTab(this.activeTab || this.ui.tabs.eq(0).data('tab'));
	},

	onModelDestroy: function onModelDestroy() {
		this.destroy();
	},

	onClickTabControl: function onClickTabControl(event) {
		event.preventDefault();

		var $tab = this.$(event.currentTarget),
		    tabName = $tab.data('tab');

		if (this.activeTab === tabName) {
			return;
		}

		this.activateTab(tabName);

		this._renderChildren();
	},

	onReloadButtonClick: function onReloadButtonClick() {
		elementor.reloadPreview();
	},

	onDeviceModeChange: function onDeviceModeChange() {
		if ('desktop' === elementor.channels.deviceMode.request('currentMode')) {
			this.$el.removeClass('elementor-responsive-switchers-open');
		}
	},

	onChildviewControlSectionClicked: function onChildviewControlSectionClicked(childView) {
		var isSectionOpen = childView.$el.hasClass('elementor-open');

		this.activateSection(isSectionOpen ? null : childView.model.get('name'));

		this._renderChildren();
	},

	onChildviewResponsiveSwitcherClick: function onChildviewResponsiveSwitcherClick(childView, device) {
		if ('desktop' === device) {
			this.$el.toggleClass('elementor-responsive-switchers-open');
		}
	}
});

module.exports = ControlsStack;

/***/ }),

/***/ 207:
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

var BaseSettingsModel;

BaseSettingsModel = Backbone.Model.extend({
	options: {},

	initialize: function initialize(data, options) {
		var self = this;

		// Keep the options for cloning
		self.options = options;

		self.controls = elementor.mergeControlsSettings(options.controls);

		self.validators = {};

		if (!self.controls) {
			return;
		}

		var attrs = data || {},
		    defaults = {};

		_.each(self.controls, function (control) {
			var isUIControl = -1 !== control.features.indexOf('ui');

			if (isUIControl) {
				return;
			}
			var controlName = control.name;

			if ('object' === _typeof(control.default)) {
				defaults[controlName] = elementorCommon.helpers.cloneObject(control.default);
			} else {
				defaults[controlName] = control.default;
			}

			var isDynamicControl = control.dynamic && control.dynamic.active,
			    hasDynamicSettings = isDynamicControl && attrs.__dynamic__ && attrs.__dynamic__[controlName];

			if (isDynamicControl && !hasDynamicSettings && control.dynamic.default) {
				if (!attrs.__dynamic__) {
					attrs.__dynamic__ = {};
				}

				attrs.__dynamic__[controlName] = control.dynamic.default;

				hasDynamicSettings = true;
			}

			// Check if the value is a plain object ( and not an array )
			var isMultipleControl = jQuery.isPlainObject(control.default);

			if (undefined !== attrs[controlName] && isMultipleControl && !_.isObject(attrs[controlName]) && !hasDynamicSettings) {
				elementor.debug.addCustomError(new TypeError('An invalid argument supplied as multiple control value'), 'InvalidElementData', 'Element `' + (self.get('widgetType') || self.get('elType')) + '` got <' + attrs[controlName] + '> as `' + controlName + '` value. Expected array or object.');

				delete attrs[controlName];
			}

			if (undefined === attrs[controlName]) {
				attrs[controlName] = defaults[controlName];
			}
		});

		self.defaults = defaults;

		self.handleRepeaterData(attrs);

		self.set(attrs);
	},

	handleRepeaterData: function handleRepeaterData(attrs) {
		_.each(this.controls, function (field) {
			if (field.is_repeater) {
				// TODO: Apply defaults on each field in repeater fields
				if (!(attrs[field.name] instanceof Backbone.Collection)) {
					attrs[field.name] = new Backbone.Collection(attrs[field.name], {
						model: function model(attributes, options) {
							options = options || {};

							options.controls = field.fields;

							if (!attributes._id) {
								attributes._id = elementor.helpers.getUniqueID();
							}

							return new BaseSettingsModel(attributes, options);
						}
					});
				}
			}
		});
	},

	getFontControls: function getFontControls() {
		return _.filter(this.getActiveControls(), function (control) {
			return 'font' === control.type;
		});
	},

	getStyleControls: function getStyleControls(controls, attributes) {
		var self = this;

		controls = elementorCommon.helpers.cloneObject(self.getActiveControls(controls, attributes));

		var styleControls = [];

		jQuery.each(controls, function () {
			var control = this,
			    controlDefaultSettings = elementor.config.controls[control.type];

			control = jQuery.extend({}, controlDefaultSettings, control);

			if (control.fields) {
				var styleFields = [];

				self.attributes[control.name].each(function (item) {
					styleFields.push(self.getStyleControls(control.fields, item.attributes));
				});

				control.styleFields = styleFields;
			}

			if (control.fields || control.dynamic && control.dynamic.active || self.isStyleControl(control.name, controls)) {
				styleControls.push(control);
			}
		});

		return styleControls;
	},

	isStyleControl: function isStyleControl(attribute, controls) {
		controls = controls || this.controls;

		var currentControl = _.find(controls, function (control) {
			return attribute === control.name;
		});

		return currentControl && !_.isEmpty(currentControl.selectors);
	},

	getClassControls: function getClassControls(controls) {
		controls = controls || this.controls;

		return _.filter(controls, function (control) {
			return !_.isUndefined(control.prefix_class);
		});
	},

	isClassControl: function isClassControl(attribute) {
		var currentControl = _.find(this.controls, function (control) {
			return attribute === control.name;
		});

		return currentControl && !_.isUndefined(currentControl.prefix_class);
	},

	getControl: function getControl(id) {
		return _.find(this.controls, function (control) {
			return id === control.name;
		});
	},

	getActiveControls: function getActiveControls(controls, attributes) {
		var activeControls = {};

		if (!controls) {
			controls = this.controls;
		}

		if (!attributes) {
			attributes = this.attributes;
		}

		_.each(controls, function (control, controlKey) {
			if (elementor.helpers.isActiveControl(control, attributes)) {
				activeControls[controlKey] = control;
			}
		});

		return activeControls;
	},

	clone: function clone() {
		return new BaseSettingsModel(elementorCommon.helpers.cloneObject(this.attributes), elementorCommon.helpers.cloneObject(this.options));
	},

	setExternalChange: function setExternalChange(key, value) {
		var self = this,
		    settingsToChange;

		if ('object' === (typeof key === 'undefined' ? 'undefined' : _typeof(key))) {
			settingsToChange = key;
		} else {
			settingsToChange = {};

			settingsToChange[key] = value;
		}

		self.set(settingsToChange);

		jQuery.each(settingsToChange, function (changedKey, changedValue) {
			self.trigger('change:external:' + changedKey, changedValue);
		});
	},

	parseDynamicSettings: function parseDynamicSettings(settings, options, controls) {
		var self = this;

		settings = elementorCommon.helpers.cloneObject(settings || self.attributes);

		options = options || {};

		controls = controls || this.controls;

		jQuery.each(controls, function () {
			var control = this,
			    valueToParse;

			if ('repeater' === control.type) {
				valueToParse = settings[control.name];
				valueToParse.forEach(function (value, key) {
					valueToParse[key] = self.parseDynamicSettings(value, options, control.fields);
				});

				return;
			}

			valueToParse = settings.__dynamic__ && settings.__dynamic__[control.name];

			if (!valueToParse) {
				return;
			}

			var dynamicSettings = control.dynamic;

			if (undefined === dynamicSettings) {
				dynamicSettings = elementor.config.controls[control.type].dynamic;
			}

			if (!dynamicSettings || !dynamicSettings.active) {
				return;
			}

			var dynamicValue;

			try {
				dynamicValue = elementor.dynamicTags.parseTagsText(valueToParse, dynamicSettings, elementor.dynamicTags.getTagDataContent);
			} catch (error) {
				if (elementor.dynamicTags.CACHE_KEY_NOT_FOUND_ERROR !== error.message) {
					throw error;
				}

				dynamicValue = '';

				if (options.onServerRequestStart) {
					options.onServerRequestStart();
				}

				elementor.dynamicTags.refreshCacheFromServer(function () {
					if (options.onServerRequestEnd) {
						options.onServerRequestEnd();
					}
				});
			}

			if (dynamicSettings.property) {
				settings[control.name][dynamicSettings.property] = dynamicValue;
			} else {
				settings[control.name] = dynamicValue;
			}
		});

		return settings;
	},

	toJSON: function toJSON(options) {
		var data = Backbone.Model.prototype.toJSON.call(this);

		options = options || {};

		delete data.widgetType;
		delete data.elType;
		delete data.isInner;

		_.each(data, function (attribute, key) {
			if (attribute && attribute.toJSON) {
				data[key] = attribute.toJSON();
			}
		});

		// TODO: `options.removeDefault` is a bc since 2.5.14
		if (options.remove && -1 !== options.remove.indexOf('default') || options.removeDefault) {
			var controls = this.controls;

			_.each(data, function (value, key) {
				var control = controls[key];

				if (!control) {
					return;
				}

				// TODO: use `save_default` in text|textarea controls.
				if (control.save_default || ('text' === control.type || 'textarea' === control.type) && data[key]) {
					return;
				}

				if (_.isEqual(data[key], control.default)) {
					delete data[key];
				}
			});
		}

		return elementorCommon.helpers.cloneObject(data);
	}
});

module.exports = BaseSettingsModel;

/***/ })

/******/ });
//# sourceMappingURL=editor-modules.js.map